using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._DataManagementTools._Raster._MosaicDataset
{
    /// <summary>
    /// <para>Synchronize Mosaic Dataset</para>
    /// <para>Keeps your mosaic dataset up to date. In addition to syncing data, you can update overviews if the underlying imagery has been changed, generate new overviews and cache, and restore the original configuration of mosaic dataset items. You can also remove paths to source data with this tool. To repair paths, you need to use the Repair Mosaic Dataset Paths  tool.</para>
    /// <para>使镶嵌数据集保持最新状态。除了同步数据外，您还可以在基础影像已更改时更新概视图、生成新的概视图和缓存，以及恢复镶嵌数据集项目的原始配置。您还可以使用此工具删除源数据的路径。要修复路径，您需要使用修复镶嵌数据集路径工具。</para>
    /// </summary>    
    [DisplayName("Synchronize Mosaic Dataset")]
    public class SynchronizeMosaicDataset : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public SynchronizeMosaicDataset()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_in_mosaic_dataset">
        /// <para>Mosaic Dataset</para>
        /// <para>The mosaic dataset you want to synchronize.</para>
        /// <para>要同步的镶嵌数据集。</para>
        /// </param>
        public SynchronizeMosaicDataset(object _in_mosaic_dataset)
        {
            this._in_mosaic_dataset = _in_mosaic_dataset;
        }
        public override string ToolboxName => "Data Management Tools";

        public override string ToolName => "Synchronize Mosaic Dataset";

        public override string CallName => "management.SynchronizeMosaicDataset";

        public override List<string> AcceptEnvironments => ["parallelProcessingFactor", "rasterStatistics"];

        public override object[] ParameterInfo => [_in_mosaic_dataset, _where_clause, _new_items.GetGPValue(), _sync_only_stale.GetGPValue(), _update_cellsize_ranges.GetGPValue(), _update_boundary.GetGPValue(), _update_overviews.GetGPValue(), _build_pyramids.GetGPValue(), _calculate_statistics.GetGPValue(), _build_thumbnails.GetGPValue(), _build_item_cache.GetGPValue(), _rebuild_raster.GetGPValue(), _update_fields.GetGPValue(), _fields_to_update, _existing_items.GetGPValue(), _broken_items.GetGPValue(), _skip_existing_items.GetGPValue(), _refresh_aggregate_info.GetGPValue(), _estimate_statistics.GetGPValue(), _out_mosaic_dataset];

        /// <summary>
        /// <para>Mosaic Dataset</para>
        /// <para>The mosaic dataset you want to synchronize.</para>
        /// <para>要同步的镶嵌数据集。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Mosaic Dataset")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_mosaic_dataset { get; set; }


        /// <summary>
        /// <para>Query Definition</para>
        /// <para>An SQL expression to select which mosaic dataset items will be synchronized. If an expression is not provided, all dataset items will be updated.</para>
        /// <para>一个 SQL 表达式，用于选择要同步的镶嵌数据集项。如果未提供表达式，则将更新所有数据集项。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Query Definition")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _where_clause { get; set; } = null;


        /// <summary>
        /// <para>Update With New Items</para>
        /// <para><xdoc>
        ///   <para>Choose whether to include new items when synchronizing and specify which options to use under the Update With New Items Options submenu. If you choose to use this option, the item's workspace will be searched for new data. When data is added to the mosaic dataset, it will use the same raster type as the other items in the same workspace.</para>
        ///   <bulletList>
        ///     <bullet_item>Unchecked—New items will not be added when synchronizing. This is the default.</bullet_item><para/>
        ///     <bullet_item>Checked—Update the mosaic dataset with new items in the workspaces. Optionally, you can modify the existing items by not choosing the Skip Existing Items parameter.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择是否在同步时包括新项目，并在“使用新项目选项更新”子菜单下指定要使用的选项。如果选择使用此选项，则将在项目的工作空间中搜索新数据。将数据添加到镶嵌数据集时，它将使用与同一工作空间中其他项目相同的栅格类型。</para>
        ///   <bulletList>
        ///     <bullet_item>未选中 - 同步时不会添加新项目。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>选中 - 使用工作空间中的新项目更新镶嵌数据集。或者，您可以通过不选择“跳过现有项”参数来修改现有项。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Update With New Items")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _new_items_value _new_items { get; set; } = _new_items_value._false;

        public enum _new_items_value
        {
            /// <summary>
            /// <para>UPDATE_WITH_NEW_ITEMS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("UPDATE_WITH_NEW_ITEMS")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_NEW_ITEMS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_NEW_ITEMS")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Synchronize Stale Items Only</para>
        /// <para><xdoc>
        ///   <para>Choose whether to update mosaic dataset items where the underlying raster datasets have been modified due to synchronizing. For example, building pyramids or updating the georeferencing of rasters will affect how the overviews are rendered.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—Only update the items where the underlying raster datasets have been modified. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—Update all of the items in the mosaic dataset.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择是否更新基础栅格数据集因同步而修改的镶嵌数据集项目。例如，构建金字塔或更新栅格的地理配准将影响概视图的渲染方式。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 仅更新已修改基础栅格数据集的项目。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 更新镶嵌数据集中的所有项目。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Synchronize Stale Items Only")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _sync_only_stale_value _sync_only_stale { get; set; } = _sync_only_stale_value._true;

        public enum _sync_only_stale_value
        {
            /// <summary>
            /// <para>SYNC_STALE</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("SYNC_STALE")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>SYNC_ALL</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("SYNC_ALL")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Update Cell Size Ranges</para>
        /// <para><xdoc>
        ///   <para>Update cell size ranges for the mosaic dataset.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—Recalculate the cell size ranges for the entire mosaic dataset but only for items that have an invalid visibility. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—Do not recalculate the cell size ranges.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>更新镶嵌数据集的像元大小范围。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 重新计算整个镶嵌数据集的像元大小范围，但仅计算具有无效可见性的项目。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 不重新计算像元大小范围。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Update Cell Size Ranges")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _update_cellsize_ranges_value _update_cellsize_ranges { get; set; } = _update_cellsize_ranges_value._true;

        public enum _update_cellsize_ranges_value
        {
            /// <summary>
            /// <para>UPDATE_CELL_SIZES</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("UPDATE_CELL_SIZES")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_CELL_SIZES</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_CELL_SIZES")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Update Boundary</para>
        /// <para><xdoc>
        ///   <para>Update the polygon that shows the full extent of the mosaic dataset. Choose this option if syncing will change the extent of the mosaic dataset.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The boundary will be rebuilt after the mosaic dataset is synchronized. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The boundary will not be rebuilt.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>更新显示镶嵌数据集完整范围的面。如果同步将更改镶嵌数据集的范围，请选择此选项。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 同步镶嵌数据集后，将重新构建边界。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 不会重新构建边界。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Update Boundary")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _update_boundary_value _update_boundary { get; set; } = _update_boundary_value._true;

        public enum _update_boundary_value
        {
            /// <summary>
            /// <para>UPDATE_BOUNDARY</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("UPDATE_BOUNDARY")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_BOUNDARY</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_BOUNDARY")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Update Overviews</para>
        /// <para><xdoc>
        ///   <para>Choose whether to update any obsolete overviews. The overview becomes obsolete if any underlying rasters have been modified due to synchronizing.</para>
        ///   <bulletList>
        ///     <bullet_item>Unchecked—The overviews will not be rebuilt. This is the default.</bullet_item><para/>
        ///     <bullet_item>Checked—The affected overviews will be rebuilt after the mosaic dataset is synchronized.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择是否更新任何过时的概览。如果由于同步而修改了任何基础栅格，则概览将过时。</para>
        ///   <bulletList>
        ///     <bullet_item>未选中 - 不会重新构建概视图。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>选中 - 同步镶嵌数据集后，将重新构建受影响的概视图。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Update Overviews")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _update_overviews_value _update_overviews { get; set; } = _update_overviews_value._false;

        public enum _update_overviews_value
        {
            /// <summary>
            /// <para>UPDATE_OVERVIEWS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("UPDATE_OVERVIEWS")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_OVERVIEWS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_OVERVIEWS")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Build Raster Pyramids</para>
        /// <para><xdoc>
        ///   <para>Choose whether to build pyramids for the specified mosaic dataset items. Pyramids can be built for each raster item in the mosaic dataset. Pyramids can improve the speed at which each raster is displayed.</para>
        ///   <bulletList>
        ///     <bullet_item>Unchecked—Pyramids will not be generated. This is the default.</bullet_item><para/>
        ///     <bullet_item>Checked—Pyramids will be generated for all the mosaic raster items that were updated due to synchronization.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>Pyramids will not be built for items that were added due to synchronization.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择是否为指定的镶嵌数据集项目构建金字塔。可以为镶嵌数据集中的每个栅格项目构建金字塔。金字塔可以提高每个栅格的显示速度。</para>
        ///   <bulletList>
        ///     <bullet_item>未选中—不会生成金字塔。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>选中 - 将为因同步而更新的所有镶嵌栅格项目生成金字塔。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>不会为因同步而添加的项目构建金字塔。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Build Raster Pyramids")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _build_pyramids_value _build_pyramids { get; set; } = _build_pyramids_value._false;

        public enum _build_pyramids_value
        {
            /// <summary>
            /// <para>BUILD_PYRAMIDS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("BUILD_PYRAMIDS")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_PYRAMIDS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_PYRAMIDS")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Calculate Statistics</para>
        /// <para><xdoc>
        ///   <para>Choose whether to calculate statistics for the specified mosaic dataset items. Statistics are required for your mosaic dataset when performing certain tasks, such as applying a contrast stretch.</para>
        ///   <bulletList>
        ///     <bullet_item>Unchecked—Statistics will not be calculated. This is the default.</bullet_item><para/>
        ///     <bullet_item>Checked—Statistics will be calculated for the mosaic dataset items that were updated due to synchronization.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>Statistics will not be calculated for items that were added due to synchronization.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择是否计算指定镶嵌数据集项目的统计数据。在执行某些任务（例如应用对比度拉伸）时，镶嵌数据集需要统计数据。</para>
        ///   <bulletList>
        ///     <bullet_item>未选中 - 将不计算统计数据。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>选中 - 将计算因同步而更新的镶嵌数据集项目的统计数据。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>对于因同步而添加的项目，将不计算统计信息。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Calculate Statistics")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _calculate_statistics_value _calculate_statistics { get; set; } = _calculate_statistics_value._false;

        public enum _calculate_statistics_value
        {
            /// <summary>
            /// <para>CALCULATE_STATISTICS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("CALCULATE_STATISTICS")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_STATISTICS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_STATISTICS")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Build Thumbnails</para>
        /// <para><xdoc>
        ///   <para>Choose whether to build thumbnails for the specified mosaic dataset items. Thumbnails are small, highly resampled images that can be created for each raster item in the mosaic definition. Thumbnails can be accessed when the mosaic dataset is accessed as an image service and will display as part of the item description.</para>
        ///   <bulletList>
        ///     <bullet_item>Unchecked—No thumbnails will be created or updated. This is the default.</bullet_item><para/>
        ///     <bullet_item>Checked—Thumbnails will be generated or updated for all the raster items that were updated due to synchronization.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>Thumbnails will not be built for items that were added due to synchronization.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择是否为指定的镶嵌数据集项目构建缩略图。缩略图是经过高度重采样的小型图像，可以为镶嵌定义中的每个栅格项目创建。当镶嵌数据集作为影像服务进行访问时，可以访问缩略图，并将显示为项目描述的一部分。</para>
        ///   <bulletList>
        ///     <bullet_item>未选中 - 不会创建或更新缩略图。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>选中 - 将为因同步而更新的所有栅格项目生成或更新缩略图。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>不会为因同步而添加的项目生成缩略图。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Build Thumbnails")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _build_thumbnails_value _build_thumbnails { get; set; } = _build_thumbnails_value._false;

        public enum _build_thumbnails_value
        {
            /// <summary>
            /// <para>BUILD_THUMBNAILS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("BUILD_THUMBNAILS")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_THUMBNAILS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_THUMBNAILS")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Build Item Cache</para>
        /// <para><xdoc>
        ///   <para>Choose whether to build a cache for the specified mosaic dataset items. A cache can be created when you've added data using the LAS, Terrain, or LAS dataset raster types.</para>
        ///   <para>For more information about building cache for LAS, Terrain, or LAS Datasets, see Adding lidar data to a mosaic dataset.</para>
        ///   <bulletList>
        ///     <bullet_item>Unchecked—No cache will be created or updated. This is the default.</bullet_item><para/>
        ///     <bullet_item>Checked—The cache will be generated or updated for all the raster items specified by this tool.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>The cache will not be built for items that were added due to synchronization.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择是否为指定的镶嵌数据集项目构建缓存。使用 LAS、Terrain 或 LAS 数据集栅格类型添加数据后，可以创建缓存。</para>
        ///   <para>有关为 LAS、Terrain 或 LAS 数据集构建缓存的详细信息，请参阅向镶嵌数据集添加激光雷达数据。</para>
        ///   <bulletList>
        ///     <bullet_item>未选中 - 不会创建或更新缓存。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>选中 - 将为此工具指定的所有栅格项目生成或更新缓存。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>不会为由于同步而添加的项目构建缓存。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Build Item Cache")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _build_item_cache_value _build_item_cache { get; set; } = _build_item_cache_value._false;

        public enum _build_item_cache_value
        {
            /// <summary>
            /// <para>BUILD_ITEM_CACHE</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("BUILD_ITEM_CACHE")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_ITEM_CACHE</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_ITEM_CACHE")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Rebuild Raster From Data Source</para>
        /// <para><xdoc>
        ///   <para>Choose whether to rebuild the raster items from the data source using the original raster type.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—Rebuild the rasters from the source data. You will lose any changes that you have performed on the mosaic dataset. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—Do not rebuild the rasters. Other primary fields are reset if Update Fields is checked.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>This will only affect items that will be synchronized. This parameter is not applicable if Update With New Items has been checked on.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择是否使用原始栅格类型从数据源重新构建栅格项目。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 根据源数据重新构建栅格。您将丢失对镶嵌数据集执行的任何更改。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 不重新构建栅格。如果选中“更新字段”，则重置其他主字段。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>这只会影响将要同步的项目。如果选中了“使用新项目更新”，则此参数不适用。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Rebuild Raster From Data Source")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _rebuild_raster_value _rebuild_raster { get; set; } = _rebuild_raster_value._true;

        public enum _rebuild_raster_value
        {
            /// <summary>
            /// <para>REBUILD_RASTER</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("REBUILD_RASTER")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_RASTER</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_RASTER")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Update Fields</para>
        /// <para><xdoc>
        ///   <para>Choose whether to update the fields in the table. This will only affect items that will be synchronized.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—Update the fields from the source files. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—Do not reset the fields in the table from the source.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>If you choose to update the fields, you can control which fields are updated by selecting them in the Fields To Update parameter. If you made edits to some of the fields, you may want to unselect them in the Fields To Update parameter.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择是否更新表中的字段。这只会影响将要同步的项目。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 （Checked） - 更新源文件中的字段。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 不从源重置表中的字段。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>如果选择更新字段，则可以通过在要更新的字段参数中选择字段来控制要更新的字段。如果对某些字段进行了编辑，则可能需要在要更新的字段参数中取消选择它们。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Update Fields")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _update_fields_value _update_fields { get; set; } = _update_fields_value._true;

        public enum _update_fields_value
        {
            /// <summary>
            /// <para>UPDATE_FIELDS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("UPDATE_FIELDS")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_FIELDS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_FIELDS")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Fields To Update</para>
        /// <para><xdoc>
        ///   <para>Choose which fields should be updated.</para>
        ///   <para>This parameter is only valid if Update Fields is checked.</para>
        ///   <para>If you made edits to some of the fields, you may want to unselect them.</para>
        ///   <para>The RASTER field can be refreshed, even if the Rebuild Raster From Data Source check box is unchecked. However, if Rebuild Raster From Data Source is checked, the RASTER field is rebuilt, even if this option is unchecked here.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择应更新的字段。</para>
        ///   <para>仅当选中“更新字段”时，此参数才有效。</para>
        ///   <para>如果您对某些字段进行了编辑，则可能需要取消选择它们。</para>
        ///   <para>即使未选中从数据源重建栅格复选框，也可以刷新栅格字段。但是，如果选中从数据源重新构建栅格，则将重新构建栅格字段，即使此处未选中此选项也是如此。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Fields To Update")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public List<object> _fields_to_update { get; set; } = null;


        /// <summary>
        /// <para>Update Existing Items</para>
        /// <para><xdoc>
        ///   <para>Choose whether to update existing items in your mosaic dataset. If you choose this option, you need to specify which options to update in Update Existing Items Options.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—Existing items will be updated with the parameters you chose to update. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—Existing items will not be updated.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择是否更新镶嵌数据集中的现有项目。如果选择此选项，则需要在“更新现有项目选项”中指定要更新的选项。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 现有项目将使用您选择更新的参数进行更新。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 不会更新现有项目。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Update Existing Items")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _existing_items_value _existing_items { get; set; } = _existing_items_value._true;

        public enum _existing_items_value
        {
            /// <summary>
            /// <para>UPDATE_EXISTING_ITEMS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("UPDATE_EXISTING_ITEMS")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>IGNORE_EXISTING_ITEMS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("IGNORE_EXISTING_ITEMS")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Remove Items With Broken Data Source</para>
        /// <para><xdoc>
        ///   <para>Choose whether to remove any broken links.</para>
        ///   <para>Make sure that all your network connections are working properly—this tool will remove any items that cannot be accessed.</para>
        ///   <bulletList>
        ///     <bullet_item>Unchecked—Items that have broken links will not be removed from the mosaic dataset. This is the default.</bullet_item><para/>
        ///     <bullet_item>Checked—Items that have broken links will be removed from the mosaic dataset.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择是否删除任何断开的链接。</para>
        ///   <para>确保您的所有网络连接都正常工作 - 此工具将删除任何无法访问的项目。</para>
        ///   <bulletList>
        ///     <bullet_item>未选中 - 不会从镶嵌数据集中移除链接断开的项目。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>选中 - 链接断开的项目将从镶嵌数据集中移除。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Remove Items With Broken Data Source")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _broken_items_value _broken_items { get; set; } = _broken_items_value._false;

        public enum _broken_items_value
        {
            /// <summary>
            /// <para>REMOVE_BROKEN_ITEMS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("REMOVE_BROKEN_ITEMS")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>IGNORE_BROKEN_ITEMS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("IGNORE_BROKEN_ITEMS")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Skip Existing Items</para>
        /// <para><xdoc>
        ///   <para>If the Update With New Items option is checked on, you can also choose whether to skip or update existing mosaic dataset items with the modified files from disk.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—While adding new mosaic dataset items, the tool will not update existing mosaic dataset items. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—While adding new mosaic dataset items, the tool will update mosaic dataset items that correspond to modified files on disk.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>如果选中了使用新项目更新选项，您还可以选择是使用磁盘中的修改文件跳过或更新现有镶嵌数据集项目。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 添加新的镶嵌数据集项目时，该工具将不会更新现有镶嵌数据集项目。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 添加新的镶嵌数据集项目时，该工具将更新与磁盘上已修改文件对应的镶嵌数据集项目。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Skip Existing Items")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _skip_existing_items_value _skip_existing_items { get; set; } = _skip_existing_items_value._true;

        public enum _skip_existing_items_value
        {
            /// <summary>
            /// <para>SKIP_EXISTING_ITEMS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("SKIP_EXISTING_ITEMS")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>OVERWRITE_EXISTING_ITEMS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("OVERWRITE_EXISTING_ITEMS")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Refresh Aggregate Information</para>
        /// <para><xdoc>
        ///   <para>Choose whether to include data that may have been removed from the mosaic dataset.</para>
        ///   <bulletList>
        ///     <bullet_item>Unchecked—When synchronizing, do not include any rasters that may have been removed from the mosaic dataset. This is the default.</bullet_item><para/>
        ///     <bullet_item>Checked—When synchronizing, include rasters that may have been removed from the mosaic dataset. To use the Refresh Aggregate Information parameter, theUpdate Existing Items must be unchecked.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择是否包含可能已从镶嵌数据集中移除的数据。</para>
        ///   <bulletList>
        ///     <bullet_item>未选中 - 同步时，不包括可能已从镶嵌数据集中移除的任何栅格。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>选中 - 同步时，包括可能已从镶嵌数据集中移除的栅格。若要使用“刷新聚合信息”参数，必须取消选中“更新现有项”。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Refresh Aggregate Information")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _refresh_aggregate_info_value _refresh_aggregate_info { get; set; } = _refresh_aggregate_info_value._false;

        public enum _refresh_aggregate_info_value
        {
            /// <summary>
            /// <para>REFRESH_INFO</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("REFRESH_INFO")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_REFRESH_INFO</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_REFRESH_INFO")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Estimate Mosaic Dataset Statistics</para>
        /// <para><xdoc>
        ///   <para>Choose whether to estimate statistics on the mosaic dataset.</para>
        ///   <bulletList>
        ///     <bullet_item>Unchecked—When synchronizing, do not estimate statistics on the mosaic dataset. This is the default.</bullet_item><para/>
        ///     <bullet_item>Checked—When synchronizing, estimate statistics on the mosaic dataset.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择是否估计镶嵌数据集的统计数据。</para>
        ///   <bulletList>
        ///     <bullet_item>未选中 - 同步时，不估计镶嵌数据集上的统计数据。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>选中 - 同步时，估计镶嵌数据集的统计数据。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Estimate Mosaic Dataset Statistics")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _estimate_statistics_value _estimate_statistics { get; set; } = _estimate_statistics_value._false;

        public enum _estimate_statistics_value
        {
            /// <summary>
            /// <para>ESTIMATE_STATISTICS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("ESTIMATE_STATISTICS")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_STATISTICS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_STATISTICS")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Updated Mosaic Dataset</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Updated Mosaic Dataset")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_mosaic_dataset { get; set; }


        public SynchronizeMosaicDataset SetEnv(object parallelProcessingFactor = null, object rasterStatistics = null)
        {
            base.SetEnv(parallelProcessingFactor: parallelProcessingFactor, rasterStatistics: rasterStatistics);
            return this;
        }

    }

}